有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将两个数组合并为JSON

我有两个数组

Array 1 = [ a, b, c, d]
Array 2 = [ 1, 2, 3, 4]

我需要像一个字典/映射一样合并它们(数组1是键,数组2是值),并将其转换为JSON

下面是转换为JSON的字典/映射以及最终想要的结果

{"a":"1", "b":"2", "c":"3", "d":"4"}

共 (6) 个答案

  1. # 1 楼答案

    您可以使用jackson,只需将给定列表合并到Map

        Map<String, String> map = new HashMap<>();
    
        Iterator<String> keys = Arrays.asList("a","b").iterator();
        Iterator<String> values = Arrays.asList("aa", "bb").iterator();
    
        while (keys.hasNext() && values.hasNext()) {
            map.put(keys.next(), values.next());
        }
    
        ObjectMapper mapper = new ObjectMapper();
    
        String result = mapper.writeValueAsString(map);
    
  2. # 2 楼答案

    看起来您不想将两个数组合并为一个数组,但希望创建JSON对象,其中其键存储在第一个数组中,值存储在第二个数组中。在这种情况下,可以使用org.json.JSONObject

    下面是一个简单的例子:

    String[] keys = {"a",  "b",  "c",  "d"};
    String[] values = {"aa", "bb", "cc", "dd"};
    
    JSONObject jsonObject = new JSONObject();
    
    for (int i = 0; i<keys.length; i++){
        jsonObject.put(keys[i], values[i]);
    }
    
    System.out.println(jsonObject);
    

    输出{"a":"aa","b":"bb","c":"cc","d":"dd"}

  3. # 3 楼答案

    感谢所有的输入,特别感谢Pshemo。我的工作代码:

    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    import org.codehaus.jackson.JsonGenerationException;
    
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
    
    
    public class ArrayToJason  {
    
        public static void main (String args[]) throws Exception{
    
            String [] value = {"a", "b" , "c", "d"};
            String [] key = {"aa", "bb", "cc", "dd"};
    
             Map <String, String> map1 = new HashMap();
    
                Iterator <String> keys = Arrays.asList(value).iterator();
                Iterator <String> values = Arrays.asList(key).iterator();
    
                while (keys.hasNext() && values.hasNext()) {
                    map1.put(keys.next(), values.next());
                }
    
                ObjectMapper mapper = new ObjectMapper();
                try {
                    String result = mapper.writeValueAsString(map1);
    
                    System.out.println("Jason format " + result);
    
                }catch (JsonGenerationException e) {
    
                    e.printStackTrace();
    
    
        }
    }
    }
    

    **Jason格式{“d”:“dd”,“b”:“bb”,“c”:“cc”,“a”:“aa”}

  4. # 4 楼答案

    作为一个简单代码的示例

    如果有两个数组,比如数组A和B,只需迭代它们并创建它们的JSONObject,其中数组A是键,数组B是值

    基本代码示例:

    JSONObject map = new JSONObject()
    for(int i =0; i<array.size(); i++) {
      map.put(arrayA.[i],arrayB[i]);
    }
    return map;
    
  5. # 5 楼答案

    org.json有一个简单的方法

    JSONArray keys = new JSONArray(Arrays.asList(array1));
    JSONArray values = new JSONArray(Arrays.asList(array2));
    
    JSONObject result = values.toJSONObject(keys);
    
  6. # 6 楼答案

    将数组转换为JSON的最简单方法是:

    JSONArray jsonArray = new JSONArray(Arrays.asList(myArray));